\chapter{INTRODUÇÃO}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Motivação}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\noindent A animação de personagens levando em conta a dinâmica de corpos articulados proporciona movimentos plausíveis quando 
comparados aos movimentos de personagens reais. Em diversas aplicações, o realismo dos movimentos é imperativo. Nessas aplicações, 
o personagem está imerso em um ambiente no qual ele deve reagir a múltiplos eventos, possivelmente inesperados. Em casos como esses, 
a animação através de abordagens cinemáticas não é a mais adequada. Assim, a 
busca por controladores baseados em física, que atuam no personagem a fim de fazê-lo responder às perturbações impostas pelo ambiente e garantir
a naturalidade do ambiente é um tema de pesquisa bastante atual. Nessa busca, quanto maior a robustez
e a flexibilidade do controlador, melhores são os resultados da animação.

Observam-se, com frequência,  as aplicações dessas pesquisas em animação em vários segmentos de mercado, como
por exemplo, o publicitário, o cinematográfico, o de robótica e o de produção de jogos. 
Ultimamente, os filmes de animação apresentam personagens que aparentam ser pessoas reais na tela. Para isso, muitos filmes de ação,
utilizam dados de Movimentos Capturados (MoCap) a fim de conferir ao personagem virtual as expressões e ações físicas do ator (Figura \ref{fig:mocapcine}).

\begin{figure}[htbp]
\centering 
\subfloat[Captura de movimento no filme Avatar, 2009.]{\includegraphics[width=7.5cm]{avatar_mocap.png}}
\hspace{0.5cm}
\subfloat[Captura de movimento no filme Iron Man, 2008.]{\includegraphics[width=7.5cm]{ironman_mocap.png}}
\caption{Uso de MoCap na indústria cinematográfica.}
\label{fig:mocapcine}
\end{figure} 

No entanto, os dados de MoCap precisam ser adaptados criteriosamente para sua utilização em personagens virtuais. 
Primeiramente, a geometria do ator e a geometria do personagem virtual usualmente não é a mesma. Além disso, os dados
de MoCap não fornecem informações sobre as forças de contato dos pés do ator com o chão. 

Para sanar essas dificuldades, simplificações são adotadas para a utilização destes dados. Como, por exemplo, o uso de
controladores para estimar a posição e a orientação global do personagem e o tratamento das forças de contato no solo. 
Os controladores são alternativas plausíveis para fazer a animação de personagens articulados em um ambiente fisicamente simulado. 
Funcionando como uma espécie de cérebro virtual que calcula e transmite o movimento necessário a cada membro do personagem a fim de
cumprir um determinado objetivo, como atingir um ponto virtual.

%Alguns objetivos envolvem o controle de posições e de orientações virtuais, para se atingir a animação desejada. Witkin e Kass (\citeyear{bib:Witkin88})
%introduziram um método conhecido por \textit{spacetime constraints}. Nesse método, a animação inteira a ser gerada é tratada de uma maneira global. 
%Definido o tempo total da animação, o movimento completo é discretizado, e o problema de controle é mapeado em um problema de otimização com
%restrições. O espaço de busca da otimização é constituído pelas poses do personagem, pelos torques internos aplicados por seus atuadores, e pelas 
%forças de reação do chão, em cada instante de tempo considerado na discretização. Para minimizar esse espaço de busca na animação baseada em 
%simulação a trajetória é obtida indiretamente, a partir de uma simulação dinâmica que é realizada de acordo com os parâmetros de controle. Uma 
%simplificação no controle do personagem utilizada procura minimizar os parâmetros escolhendo alguns parâmetros globais, entre eles, a posição do 
%Centro de Massa, a orientação global do personagem em relação ao ambiente e o contato dos pés do personagem com o chão. Na concepção do equilíbrio
%esses parâmetros globais são fortemente utilizados, prevendo o controle da posição virtual do Centro de Massa do personagem.

Uma estratégia de controle utilizada para atingir pontos virtuais  por meio de uma estrutura articulada foi proposta na cinemática inversa
clássica com o uso da matriz Jacobiana. Seja um personagem articulado com uma base fixa e uma cadeia de corpos articulados, essa matriz relaciona
as posições dos corpos, envolvidos na cadeia, de acordo com a posição virtual a ser atingida. Essa matriz informa a orientação global necessária 
a cada corpo para o alcance da posição final da cadeia repousar, se possível, sobre o ponto virtual. No entanto, deve-se levar em consideração 
que a suposição seja mantida, ou seja, que a base da estrutura articulada está fixa. A Jacobiana pode ser adaptada para ser utilizada em 
simulações dinâmicas, sendo um meio para a manipulação de graus de liberdade globais do personagem, ao promover as forças externas \cite{bib:Wrotek06} 
ou os troques internos \cite{bib:Geijtenbeek12} na estrutura articulada do personagem para o alcance de objetivos.

A utilização de torques internos para gerir uma animação física infere em uma melhor naturalidade do movimento, ao se fazer uma analogia com a 
fisiologia humana. A Jacobiana, tendo uma cadeia de corpos fixa a raiz, irá promover estes torques de acordo com a  manipulação de posições 
globais. Por exemplo, na manutenção do equilíbrio um consenso adotado por muitos pesquisadores é fazer com que o Centro de Massa do personagem
esteja projetado no centro do polígono convexo formado por seus pés. Nesse exemplo, a matriz Jacobiana irá relacionar as posições dos corpos do
personagem, envolvidos na cadeia escolhida, com o ponto virtual e promover os torques internos a serem aplicados nesses corpos a fim de posicionar
o Centro de Massa do personagem projetado sobre o ponto virtual desejado, que nesse caso é o centro do polígono convexo formado pelos pés do
personagem. No entanto, a estabilidade e controle promovido com o uso da Jacobiana inferem que a suposição sobre essa matriz seja mantida. 
Para que a suposição seja mantida deve-se observar como a estrutura de contato do pé do personagem com o solo está construída, observando que o
pé é a raiz da cadeia de corpos envolvidos na Jacobiana. Outro quesito a ser observado é que a matriz Jacobiana na cinemática inversa clássica
possui um único efetor final, se por acaso todos os corpos do personagem são efetores finais para o alcance de um determinado objetivo a Jacobina 
deveria ser totalmente desvinculada da ideia adotada na cinemática clássica tendo que ter sua construção reestruturada.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Objetivos e Contribuições}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\noindent Este trabalho tem como objetivo mostrar um único controlador robusto para um personagem bípede, capaz de seguir diversos 
tipos de movimentos obtidos através de sistemas de captura de movimentos -- tanto movimentos de locomoção \cite{bib:Coros10} quanto movimentos em que o personagem permanece no mesmo lugar
\cite{bib:Macchietto09} -- e manter o equilíbrio em um ambiente simulado fisicamente. A ideia é utilizar aplicações de torques internos nas juntas do personagem compatíveis com os momentos linear e angular
em seu Centro de Massa com o uso da matriz Jacobiana. 
A Jacobiana promovida nesse controlador teve que ser adaptada para considerar todos os corpos do personagem no alcance dos objetivos globais, 
que incluem manipulação da orientação global do personagem e da posição de seu Centro de Massa. O modelo de contato simples realizado de forma 
paramétrica garantiu que a suposição da Jacobiana fosse mantida, de forma robusta, promovendo melhor adaptatividade do controlador para variados 
tipos de movimentos. Esse modelo de contato dita que parte ou todo impacto do pé do personagem contra o solo (torque) será absorvido.

A contribuição principal deste trabalho é o desenvolvimento de um controlador simples de implementar que não necessita de otimizador
e que possui uma simplificação simples na estrutura do modelo do pé para concepção de um equilíbrio estável. Possibilitando ainda, 
deixar a critério do usuário a manipulação de todas as constantes do sistema.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Organização do Trabalho}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\noindent O restante deste trabalho está organizado em cinco capítulos. No Capítulo \ref{cap:background}, são expostos alguns conceitos e definições sobre dinâmica de corpos
articulados a fim de facilitar a compreensão dos capítulos subsequentes.  No Capítulo \ref{cap:relacionados}, são apresentados os trabalhos e contribuições de diferentes autores para concepção de controladores de equilíbrio e,
no final do capítulo, faz-se uma comparação com o trabalho proposto. No Capítulo \ref{cap:tecnicaproposta}, a técnica proposta é apresentada juntamente com a descrição
dos controladores e elementos utilizados na simulação. No Capítulo \ref{cap:resultados}, são apresentados os diversos testes feitos com o controlador proposto a fim de demonstrar sua 
robustez e adaptatividade. Por fim, no Capítulo \ref{cap:conclusao}, foi realizada uma análise geral deste trabalho e objetivos futuros foram citados.